package com.shujia.jichu

import scala.io.Source

/**
 *  隐式转换类
 */
object Demo25Implicit {
  def main(args: Array[String]): Unit = {
//    val read: Read = new Read("scala/data/students.csv")
//    val linesList: List[String] = read.read()
//    linesList.foreach(println)

    //使用隐式转换类的方式调用
    /**
     * 隐式转换类可以隐式的将类的构造函数参数类型转换成当前类的类型，自动调用构造方法创建对象
     */
    val lineList2: List[String] = "scala/data/students.csv".read()

    println("scala/data/students.csv".p())

  }

  //定义隐式转换类的时候，定义在Object中
  implicit class Read(path:String){
    def read(): List[String] = {
      Source.fromFile(path).getLines().toList
    }

    def p(): String = {
      "好好学习，天天向上"+path
    }
  }
}


